# -*- coding: utf8-*- # For Forelesninger om Programmering i MENA1000 # Forelesning 3: Funksjoner ************************************************** # Vi skal l?re om ? skrive funksjoner selv, samt importere dem fra pakker. # Eksempel: Fakultet (!): # En funksjon er et stykke program som utf?res n?r det kalles. # Den skal starte med def, deretter kommer nevnet og argementer i parentes. # Eksempel: En funksjon som beregner fakultet av et tall n: def nfakultet(x): i = 1 fakultet = 1 for i in range(1,x+1): fakultet *= i # kunne her ogs? ha skrevet fakultet = fakultet * i return fakultet # Legg merke til at funksjoner returnerer et svar n?r vi bruker kommandoen return. # En funksjon m? defineres f?r den kalles (lenger opp i programmet). # Her kommer den delen av programmet som kaller p? funksjonen: x = 0.0 n = 1 x = input("Skriv et heltall: ") n = nfakultet(x) print x,"! = ",n # Bruk av pythons innebygde funksjoner *************************************** # Du har allerede brukt funksjonen print. Den gj?r noe, men returnerer ingenting. # N? skal vi l?re to innebygde funksjoner for ? hente data fra brukerens keyboard: # Brukerinput med funksjonen raw_input(prompt): s = raw_input('Oppgi temperaturen i grader celsius: ') TC = float(s) #...og her ser vi bruk av funksjonen float... print TC # Brukerinput med input(prompt): TC = input('Oppgi temperaturen i grader celsius: ') print TC # Import av pakke (med funksjoner) ******************************************* import math # Importerer hele pakken # Vi vil s? bruke pakkens cosinus- og pi-funksjoner: print "cosinus av ",math.pi," er ", math.cos(math.pi) # Merk at vi kaller p? funksjonen via pakkens adresse. print # Vi kan ogs? importere enkeltfunksjoner. # Da kan vi kalle p? funksjonene uten ? angi pakkens navn. del math # vi fjerner pakken from math import cos, pi # S? importerer vi bare delene vi trenger. print "cosinus av ",pi," er ", cos(pi) # Merk at vi n? ikke trenger pakkens adresse. print # Vi kan ogs? importere hele pakken (*) p? denne m?ten: # I eksempelet under brukes funksjonen eval(s). # Den tar en tekst som inneholder et enkelt mattestykke, f.eks. 7*3.14 + 17**2, og regner ut svaret! from math import * print 'Velkommen til pythonkalkulatoren \n' # Tekststrengen \n betyr ny linje. s = '0' while s != 'STOPP': print 'Skriv inn et matteuttrykk du vil evaluere' s = raw_input('For aa avslutte skriv STOPP. \n') if s != 'STOPP': print '\n' + "Resultatet ble: " + str(eval(s)) # NB: feil i heftet print "See'ya!" # Hva skjer hvis du ikke svarer STOPP til slutt? # Da henger programmet og du m? trykke Ctrl-C i vinduet der Python kj?rer.